package com.cgq.config;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * *  Author:陈国强
 * *  Description:创建配置类，测试连接ES
 * *  Date:2023/2/16 11:05
 */
@Configuration
public class ElasticSearchConfig {

    //RequestOptions   这个类 主要封装了 访问 ES 的  一些头信息   一些 设置信息

    public static final RequestOptions COMMON_OPTIONS;
    static {
        // 请求设置项
        RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();

//        builder.addHeader("Authorization","Bearer"+TOKEN);
//        builder.setHttpAsyncResponseConsumerFactory(new HttpAsyncResponseConsumerFactory
//                .HeapBufferedResponseConsumerFactory(30*1024*1024*1024));

        COMMON_OPTIONS = builder.build();
    }


    @Bean
    public RestHighLevelClient esRestClient(){
        RestClientBuilder builder = null;

        builder = RestClient.builder(new HttpHost("192.168.47.102",9200,"http"));

        RestHighLevelClient client = new RestHighLevelClient(builder);
        //RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.56.10", 9200, "http")));

        return client;
    }
}
